package com.linyaonan.leetcode.easy._5143;

import java.util.ArrayList;
import java.util.List;

/**
 * 给你一个以行程长度编码压缩的整数列表 nums 。
 * <p>
 * 考虑每相邻两个元素 [a, b] = [nums[2*i], nums[2*i+1]] （其中 i >= 0 ），每一对都表示解压后有 a 个值为 b 的元素。
 * <p>
 * 请你返回解压后的列表。
 * <p>
 *  
 * <p>
 * 示例：
 * <p>
 * 输入：nums = [1,2,3,4]
 * 输出：[2,4,4,4]
 *  
 * <p>
 * 提示：
 * <p>
 * 2 <= nums.length <= 100
 * nums.length % 2 == 0
 * 1 <= nums[i] <= 100
 *
 * @author: Lin
 * @date: 2020/1/12
 */
public class DecompressRunLength {

    public int[] decompressRLElist(int[] nums) {
        int end = (nums.length - 1 - 1) / 2;
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i <= end; i++) {
            int count = nums[i * 2];
            int value = nums[i * 2 + 1];
            for (int j = 0; j < count; j++) {
                list.add(value);
            }
        }
        int[] result = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            result[i] = list.get(i);
        }
        return result;
    }
}
